home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1985-03-10 | 5.3 KB | 150 lines
10000 RANDOMIZE 10010 REM a1 most likely income ; a2 best case , a3 worst case 10020 REM e1 most likely expense ; e2 best case; e3 worst case 10030 REM f1 most likely income escalation f2 and f3 best and worst 10040 REM d1 d2 and d3 same for expense escalation 10050 DEFINT I-N 10060 A1=0:A2=0:A3=0:E1=0:E2=0:E3=0:D1=0:D2=0:D3=0:D4=0:EI=0:VI=0 10070 EE=0:VE=0:A=0:B=0:J=0:J1=0:X1=0:X2=0:Z1=0:Z2=0:S1=0:S2=0:A7=0:A8=0:X=0:B2=0:B1=0 10080 DIM A(100),EX(100),PR(100) 10090 CLS 10100 PRINT "PROGRAM RISK. SIMULATION OF RISKY INVESTMENT' 10110 PRINT 10120 PRINT "PLEASE ENTER DATA ASKED FOR." 10130 INPUT "NAME OF INVESTMENT";NI$ 10140 PRINT USING"REALISTIC ESTIMATE OF INCOME ($$#,###.##)";A1; 10150 INPUT A1 10160 PRINT USING"BEST CASE INCOME ($$#,###.##)";A2; 10170 INPUT A2 10180 PRINT USING"WORSE CASE INCOME ($$#,###.##)";A3; 10190 INPUT A3 10200 PRINT USING"REALISTIC ESTIMATE OF EXPENSES ($$#,###.##)";E1; 10210 INPUT E1 10220 PRINT USING"BEST CASE EXPENSES ($$#,###.##)";E2; 10230 INPUT E2 10240 PRINT USING"WORSE CASE EXPENSES ($$#,###.##)";E3; 10250 INPUT E3 10260 PRINT USING"REALISTIC ESTIMATE INCOME ESCALATION (##.##%)";F1; 10270 INPUT F1 10280 PRINT USING"BEST CASE ESCALATION (##.##%)";F2; 10290 INPUT F2 10300 PRINT USING"WORSE CASE ESCALATION (##.##%)";F3; 10310 INPUT F3 10320 PRINT USING"REALISTIC ESTIMATE OF EXPENSE ESCALATION (##.##%)";D1; 10330 INPUT D1 10340 PRINT USING"BEST CASE ESCALATION (##.##%)";D2; 10350 INPUT D2 10360 PRINT USING"WORSE CASE ESCALATION (##.##)";D3; 10370 INPUT D3 10380 PRINT USING"LIFE OF THE INVESTMENT (## YEARS)";LF; 10390 INPUT LF 10400 CLS 10410 PRINT TAB(15)"CHECK DATA TO BE SURE ACCURATE" 10420 PRINT USING"REALISTIC ESTIMATE OF INCOME $$#,###.##";A1 10430 PRINT USING"BEST CASE INCOME $$#,###.##";A2 10440 PRINT USING"WORSE CASE INCOME $$#,###.##";A3 10450 PRINT USING"REALISTIC ESTIMATE OF EXPENSES $$#,###.##";E1 10460 PRINT USING"BEST CASE EXPENSES $$#,###.##";E2 10470 PRINT USING"WORSE CASE EXPENSES $$#,###.##";E3 10480 PRINT USING"REALISTIC ESTIMATE INCOME ESCALATION ##.##%";F1 10490 PRINT USING"BEST CASE ESCALATION ##.##%";F2 10500 PRINT USING"WORSE CASE ESCALATION ##.##%";F3 10510 PRINT USING"REALISTIC ESTIMATE OF EXPENSE ESCALATION ##.##%";D1 10520 PRINT USING"BEST CASE ESCALATION ##.##%";D2 10530 PRINT USING"WORSE CASE ESCALATION ##.##";D3 10540 PRINT USING"LIFE OF THE INVESTMENT ## YEARS";LF 10550 PRINT TAB(25)"ARE THESE CORRECT, Y OR N ?" 10560 Y$= INKEY$: IF Y$="" THEN 10560 ELSE IF INSTR ("yn",Y$)=0 THEN PRINT "Please answer y or n.":GOTO 10560 10570 IF Y$= "n" THEN 10090 10580 INPUT "ENTER THE NUMBER OF TIMES TO SIMULATE INVESTMENT (1-100).";NS 10590 IF NS =0 THEN NS=1 ELSE IF NS >100 THEN PRINT"Number of simulations must be 100 or less.":GOTO 10580 10600 CLS 10610 PRINT 10620 PRINT TAB(20)"NOW WORKING ON SIMULATION.PLEASE WAIT." 10630 EI=(A2+A3+4*A1)/6 10640 VI=ABS(A2-A3)/6 10650 EE=(E2+E3+4*E1)/6 10660 VE=ABS(E2-E3)/6 10670 X1=(F2+F3+4*F1)/6 10680 X2=ABS(F2-F3)/6 10690 Z1=(D2+D3+4*D1)/6 10700 Z2=ABS(D2-D3)/6 10710 S1=0:S2=0 10720 FOR J= 0 TO NS 10730 PRINT"simulation # "J 10740 EX=EI:VX=VI 10750 GOSUB 11420 10760 A7=X 10770 EX=EE:VX=VE 10780 GOSUB 11420 10790 A8=X: ' expense for sim. j 10800 EX=X1 10810 VX=V2 10820 GOSUB 11420 10830 B1=X: ' income escalation for j 10840 EX=Z1 10850 VX=Z2 10860 GOSUB 11420 10870 B2=X 10880 PR(J)=0 10890 FOR J1= 1 TO LF 10900 A=A7*(1+B1/100)^(J1-1): ' income 10910 B=A8*(1+B2/100)^J1 : ' expense 10920 PR(J)= A-B + PR(J): ' profit 10930 NEXT J1 10940 S1=S1 + PR(J) 10950 NEXT J 10960 EP=S1/(NS+1) 10970 CLS 10980 FOR J2 = 0 TO NS 10990 S2=S2+((PR(J2)-EP)*(PR(J2)-EP)) 11000 NEXT J2 11010 SD=S2/NS 11020 SD=SQR(SD) 11030 PRINT 11040 PRINT TAB(25)"SIMULATION COMPLETED" 11050 PRINT TAB(25)"RESULTS ARE ---" 11060 PRINT USING"EXPECTED PROFIT IS $$###,###.##";EP 11070 PRINT USING"STANDARD DEVIATION IS $$###,###.##";SD 11080 PRINT 11090 PRINT"FOR HARD COPY PRESS `H'. PRESS ANY OTHER KEY TO CONTINUE." 11100 Y$= INKEY$:IF Y$= "" THEN 11100 ELSE IF Y$ = "H" OR Y$="h" THEN GOSUB 11160 11110 PRINT"DO YOU WANT TO RUN ANOTHER, `Y' OR `N'." 11120 Y$=INKEY$:IF Y$="" THEN 11120 ELSE IF INSTR("YNyn",Y$) =0 THEN PRINT"PLEASE ANSWER ONLY `Y' OR `N'.":GOTO 11120 11130 IF Y$="Y" OR Y$="y" THEN 10090 11140 END 11150 END 11160 LPRINT 11170 LPRINT TAB(25)"HARD COPY FOR RISK PROGRAM" 11180 LPRINT:LPRINT TAB(28)"NAME OF INVESTMENT IS:":LPRINT:LPRINT TAB(28)NI$:LPRINT TAB(28) STRING$(LEN(NI$),"=") 11190 LPRINT:LPRINT:LPRINT TAB(30)"INPUT INFORMATION" 11200 LPRINT" ":LPRINT TAB(10) USING"BEST ESTIMATE OF INCOME -------------$$###,###.##";A1 11210 LPRINT TAB(10) USING"BEST CASH INCOME --------------------$$###,###.##";A2 11220 LPRINT TAB(10) USING"WORST CASE INCOME -------------------$$###,###.##";A3 11230 LPRINT TAB(10) USING"BEST ESTIMATE OF EXPENSES -----------$$###,###.##";E1 11240 LPRINT TAB(10) USING"BEST CASE EXPENSES ------------------$$###,###.##";E2 11250 LPRINT TAB(10) USING"WORSE CASE EXPENSES -----------------$$###,###.##";E3 11260 LPRINT TAB(10) USING"BEST ESTIMATE INCOME ESCALATION -----------##.##%";F1 11270 LPRINT TAB(10) USING"BEST CASE INCOME ESCALATION ---------------##.##%";F2 11280 LPRINT TAB(10) USING"WORSE CASE INCOME ESCALATION --------------##.##%";F3 11290 LPRINT TAB(10) USING"BEST ESTIMATE EXPENSE ESCALATION ----------##.##%";D1 11300 LPRINT TAB(10) USING"BEST CASE EXPENSE ESCALATION --------------##.##%";D2 11310 LPRINT TAB(10) USING"WORSE CASE EXPENSE ESCALATION -------------##.##%";D3 11320 LPRINT" ":LPRINT TAB(10) USING"LIFE OF THE INVESTMENT ------------------## YEARS";LF 11330 LPRINT " ":LPRINT " " 11340 LPRINT TAB(33)"RESULTS" 11350 LPRINT" ":LPRINT TAB(10) USING"EXPECTED PROFIT OVER THE ## YEARS -------$$#,###,###.##";LF,EP 11360 LPRINT TAB(10) USING"STANDARD DEVIATION OF PROFIT ------------$$#,###,###.##";SD 11370 LPRINT" " 11380 LPRINT USING"There is a 90% probabilty of making a profit within the range of $$#,###,###.## to $$#,###,###.## with this investment and a 99% probability in the range of $$#,###,###.## to $$#,###,###.##.";EP-(2*SD),EP+(2*SD),EP-(3*SD),EP+(3*SD) 11390 LPRINT" " 11400 LPRINT TAB(25) USING"NUMBER OF SIMULATIONS WAS ###";NS 11410 RETURN 11420 ' NORMAL DISTRIBUTION 11430 SX=0 11440 FOR K1 = 1 TO 12 11450 SX=SX+ RND 11460 NEXT K1 11470 X=VX*(SX-6)+EX 11480 RETURN